import Vue from 'vue'
import Router from 'vue-router'

import routes from './routes'

Vue.use(Router)

const whiteList = [
  'Home','Hello','HelloPage','TablePage'
]

const router = new Router({
  routes, scrollBehavior:(to, from, savedPosition) => {
    // console.log('跳转前',to)
    if (whiteList.includes(to.name)) {
      console.log('1',to.name)
      return {x: 0, y: 0}
    }
  }
  // 不做白名单校验简写成：
  // routes,scrollBehavior: (to, from, saavedPosition) => ({x: 0, y: 0 }),
})


// Vue导航钩子前(可以对跳转前做一些处理)
router.beforeEach((to, from, next) => {
  let flag = false;
  routes.forEach(route => {
    if(route.path === to.path){
      flag = true
    }
  });
  if(flag) {
    next()
  } else{
    router.push({
      path: '/404',
      query: {
        'id': to.path
      }
    })
  }
});




// router.afterEach(route => {
  // 从路由的元信息中获取 title 属性
  // if (route.meta.title) {
  //   document.title = route.meta.title;
  //   // 如果是 iOS 设备，则使用如下 hack 的写法实现页面标题的更新
  //   if (navigator.userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)) {
  //     const hackIframe = document.createElement('iframe');
  //     hackIframe.style.display = 'none';
  //     hackIframe.src = '/static/html/fixIosTitle.html?r=' + Math.random();
  //     document.body.appendChild(hackIframe);
  //     setTimeout(_ => {
  //       document.body.removeChild(hackIframe)
  //     }, 300)
  //   }
  // }
  // 检测浏览器路由改变页面不刷新问题,hash模式的工作原理是hashchange事件
// });

export default router